[ド素人]Alteryxで重回帰分析を勉強してみた #Alteryx
どうも。DI部@大阪オフィスのtamaです。
以前、こちらの書籍とAlteryxを使って単回帰分析を勉強しました。
- ド素人Alteryxで単回帰分析を勉強してみた #Alteryx | DevelopersIO
- マンガでわかる ビジネスを成功に導くデータ分析-Excel対応 | 豊田 裕貴 |本 | 通販 | Amazon
上記の組み合わせは、個人的になかなかいい感じだったので、今回は重回帰分析について勉強したいと思います。
重回帰分析とは
説明変数が複数ある回帰分析
単回帰分析のエントリにも書いていますが、単回帰分析でも、説明変数が複数ある場合は、重回帰分析となります。単回帰分析は目的変数と説明変数の1対1の関係を見ましたが、重回帰分析は、目的変数を説明している変数はどれか?というものを探っていく感じだと思っています。
ちなみに、学問やビジネスの分野でも非常にメジャーな分析手法だそうです。これは是非おさえておきたいですね。
直線ではなく平面を求める
単回帰分析は、散布図の中に引く直線を求める分析でしたが、これは説明変数が1つだから直線でした。重回帰分析は説明変数が複数ありますが、これを散布図上に描くとどうなるか…。すばり平面を求めることになります。空間の中に散らばるデータの分布を説明できる平面を探すということになります。
やってみる
サンプルデータ
アンケート設問
アンケートデータ
購買データ
重回帰分析の目的
データの背景
- あるECサイトの顧客にアンケートをとった
- アンケートの結果を受けて、ECサイトの改善とかキャンペーン施策とかを考えたい
重回帰分析から知りたいこと
- 最終的には売上をあげたい
- 「購買額の変化を説明する要素は何か」を知ることを目的とする
ワークフロー作成
書籍内はExcelでデータ前処理を行っていますが、本エントリでは全部Alteryxでやります。ということで作成したワークフローがこちら
2つのデータを顧客IDで結合して線形回帰ツールにつなげただけですね。ちなみに、途中の選択ツールはカラム名を英語にしています(文字化け対策)。
結果の解釈
自由度調整済み決定係数
単回帰分析と同じように、決定係数(R2)が出力されるため、この数値をもって判断してしまいそうですが、ちょっと待ちましょう。というのも、この決定係数という値は、説明変数が多いければ多いほど1に近づいてしまう性質があります。
その影響を取り除いた値が、自由度調整済み決定係数(補正R2)です。重回帰分析の時はこちらをチェックします。
で、この値は、重回帰分析が、今回のデータに当てはまっているか(説明できているか)の指標となります。0.7以上なら当てはまっている、0.9以上の場合はむちゃくちゃ当てはまっているといえます。今回の結果も当てはまってるといえます。しかし、「じゃあ今回の分析結果が正しいということになるから、この結果をもとに進めよう!」というのは、まだ早いです。
変数選択の問題
単回帰分析の時にはp値というのがありました。その説明変数が効いているかどうかは偶然である確率…逆にいうと、p値が低いほど偶然ではないということになります。
で、今回の結果を見てみると「発送迅速(ship_spped)」のp値がすごく高いです。補正R2の値が良いからといって、この結果をもって施策を打っても、効果は出なさそうです。
重回帰分析では、こういったことがあるため、説明変数を取捨選択する必要があります。この問題のことを変数選択の問題と言います。変数選択の方法には色々ありますが、今回は一般的な変数減少法を行いたいます。
仕組みは簡単。p値が一番高いものを抜く→重回帰分析する、を繰り返します。
Alteryxで変数減少法
「なんかそういうツールがあるのか」って感じの見出しですが、ここは普通にp値が高いものを対象から外していくだけです。
「発送迅速」を抜いて実行すると、下記の結果となりました。
今度は「再訪」(again)のp値が高いです。ですので、今度は「再訪」を抜いて重回帰分析を実行します。
…っていうのを、全ての説明変数のp値が0.05になるまで繰り返します。…と言われると、それ以降は不要なのかと思いますが、ここからさらに説明変数が1つになるまで繰り返すと、今度は補正R2の値が悪くなります。ですので、そこのバランスを見極めないとダメということです。
0.05というのは、p値の目安の1つです。これは有意水準といいます。(よく使う値の1つが5%)。
最終結果
全ての説明変数のp値が0.05以下になるまで分析した結果がこちら。
補正R2も高いため、良い結果になったんじゃないでしょうか。
さて、問題はここからです。この結果をどう解釈して、次のアクションにどう繋げるか…です。
一番左の係数(Estimate)を見ましょう。number_of_purchases…購買回数が7426.2となっていますが、これは、購買回数が1回増えるごとに、購買額(今回の目的変数)が約7426円上がるだろう、ということです。同じ理屈で、service(サービス)が1あがると、7907円増えるということになります。サービスというのは、アンケートで「当社のカスタマーサポートは満足しましたか」という問いに対して5段階評価でもらえるものです。つまり、カスタマーサポートの品質を上げれば、購買金額も増える可能性があるということです。
逆に係数がマイナスなのは、説明変数が上がるごとに購買金額が下がるということです。訪問経路がネット検索やネット広告の場合は、他の経路より購買金額が下がるだろう、ということです。
この結果をもっていえるのは、購買回数を増やすようなキャンペーンを行ったり、カスタマーサポートの品質を上げるための施策を検討していく必要がある…ということになります。
おわりに
重回帰分析はまだまだ学ぶことが多いので(マルチコなど)、Alteryxでそれを処理する方法とかをやっていきたいですね。